<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>Mcrypt 密码</title>
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-base.css" />
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-medium.css" />

 </head>
 <body class="docs"><div class="navbar navbar-fixed-top">
  <div class="navbar-inner clearfix">
    <ul class="nav" style="width: 100%">
      <li style="float: left;"><a href="mcrypt.constants.html">« 预定义常量</a></li>
      <li style="float: right;"><a href="ref.mcrypt.html">Mcrypt 函数 »</a></li>
    </ul>
  </div>
</div>
<div id="breadcrumbs" class="clearfix">
  <ul class="breadcrumbs-container">
    <li><a href="index.html">PHP Manual</a></li>
    <li><a href="book.mcrypt.html">Mcrypt</a></li>
    <li>Mcrypt 密码</li>
  </ul>
</div>
<div id="layout">
  <div id="layout-content"><div id="mcrypt.ciphers" class="appendix">
 <h1>Mcrypt 密码</h1>

 <p class="para">
  下表是 mcrypt 扩展所支持的密码。
  所支持的密码的完整列表请参见 <var class="filename">mcrypt.h</var> 文件。
  在 PHP 中使用 mcrypt-2.2.x 的一个通用规则是你可以使用
  MCRYPT_ciphername 来访问密码。
  在 libmcrypt-2.4.x 和 libmcrypt-2.5.x 的 API 中，这些常量依然可用，
  但是你也可以把密码模式以字符串的形式传入 <span class="function"><a href="function.mcrypt-module-open.html" class="function">mcrypt_module_open()</a></span> 函数
  来进行访问。
  <ul class="itemizedlist">
   <li class="listitem"><span class="simpara">MCRYPT_3DES</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_ARCFOUR_IV ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_ARCFOUR ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_BLOWFISH</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_CAST_128</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_CAST_256</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_CRYPT</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_DES</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_DES_COMPAT ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_ENIGMA ( 仅 libmcrypt &gt; 2.4.x 可用，MCRYPT_CRYPT 的别名)</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_GOST</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_IDEA (非免费算法)</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_LOKI97 ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_MARS ( 仅 libmcrypt &gt; 2.4.x 可用，非免费算法)</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_PANAMA ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RIJNDAEL_128 ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RIJNDAEL_192 ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RIJNDAEL_256 ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RC2</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RC4 ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RC6 ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RC6_128 ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RC6_192 ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_RC6_256 ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SAFER64</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SAFER128</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SAFERPLUS ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SERPENT( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SERPENT_128 ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SERPENT_192 ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SERPENT_256 ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_SKIPJACK ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_TEAN ( 仅 libmcrypt 2.2.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_THREEWAY</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_TRIPLEDES ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_TWOFISH ( mcrypt  2.x 之前的版本，或者 2.4.x 之后版本可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_TWOFISH128 (TWOFISHxxx 在新的 2.x 版本可用，但在 2.4.x 版本不可用)</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_TWOFISH192</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_TWOFISH256</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_WAKE ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
   <li class="listitem"><span class="simpara">MCRYPT_XTEA ( 仅 libmcrypt &gt; 2.4.x 可用 )</span></li>
  </ul>
 </p>
 <p class="para">
  如果使用 <strong><code>CFB</code></strong> 和 <strong><code>OFB</code></strong> 模式，
  必须提供初始向量（IV），
  如果使用 <strong><code>CBC</code></strong> 模式，
  可以提供一个初始向量。
  初始向量必须是唯一的，并且在加密和解密过程中要保持一致。
  你可以将初始向量和加密后数据一起存储，
  其存储位置可以由一个函数的输出来指定，
  例如文件名的 MD5 散列值，
  这样你就可以把初始向量和加密后的数据一起传输
  （关于本话题的更多信息，请参见 Applied Cryptography by Schneier (ISBN 0-471-11709-9) 9.3 一节）。
 </p>
</div>
</div></div></body></html>